Generic Framing Procedure (“GFP”) is an encapsulation technique defined by the International Telecommunication Union standard ITU-T G.7041. GFP provides mapping of traffic from higher-layer packet-oriented client signals over a transport network.
A GFP frame can be categorized as a Client Data Frame, Client Management Frame or a Management Communication Frame. A GFP frame can also be classified based on the traffic carried by the GFP frame. GFP client data frames carry client data in the payload bytes of the GFP frame, and GFP client management frames transport management information in the payload bytes of the GFP frame.
For each GFP frame categorization, action must be taken to forward the GFP frame to next data path block or to a firmware accessible FIFO (First In First Out) memory, or to raise and clear a particular defect interrupt event. These categorization or classification of frames in order to perform these actions is referred to in this disclosure as GFP frame filtering.
GFP frame filtering is done on a frame by frame basis and is typically accomplished by examining a header of the GFP frame. FIG. 1 illustrates a diagram of a GFP frame 100. The core header 110 includes a 16-bit payload length indicator (PLI) 111, and a core header error control field 112, both of which are used in frame delineation. The payload 120 includes a payload header area 121 varying in size from 4 to 64 bytes, a client payload information field 122 and an optional payload frame check sequence 123.
FIG. 2 illustrates a diagram of the payload header area 121. Bytes 5 and 6 of the GFP frame 100 define a type header field 210, which is further illustrated in FIG. 3 and discussed below. In FIG. 2, bytes 7 and 8 define the type header error control (tHEC) field 220. The bytes following the tHEC define the extension header field 230, which can vary from 0 to 58 bytes in length. The last two bytes of the payload header define the extension header error control (eHEC) field 240.
In FIG. 3, the type header field 210 includes a payload type identifier (PTI) field 211, a payload FCS (frame check sequence) identifier (PFI) bit 212, an extension header identifier (EXI) field 213, and a user payload identifier (UPI) field 214.
A GFP frame filter commonly considers the PTI, EXI and UPI fields 211, 213 and 214 for frame filtering. Depending on the values and combinations of values of the fields, the filter will perform a particular action on the frame. A conventional GFP frame filter comprises an arrangement of register-transfer level (RTL) combinatorial logic gates (AND, OR, XOR, NOT) to execute the function of evaluating the type fields.
However, this conventional GFP frame filter implementation is inflexible to changing application requirements. Because the filter is implemented as RTL combinatorial logic gates, the filter cannot be modified to perform different actions from the actions specified in the filter design. Furthermore, a GFP filter implemented in RTL logic gates cannot adapt to recognize new GFP field definitions yet to be specified, or to recognize custom field definitions specified by an application or a user.